package com.ruoyi.merchant.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 订单对象 order
 * 
 * @author ruoyi
 * @date 2025-09-15
 */
public class Order extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 订单号 */
    private Integer id;

    /** 核销码【UUID、唯一】 */
    @Excel(name = "核销码【UUID、唯一】")
    private String verificationCode;

    /** 核销码图片 */
    @Excel(name = "核销码图片")
    private String verificationImg;

    /** 店铺id */
    @Excel(name = "店铺id")
    private Integer mid;

    /** 用户id */
    @Excel(name = "用户id")
    private Integer uid;

    /** 服务详情编号id */
    @Excel(name = "服务详情编号id")
    private Integer serviceId;

    /** 服务类别id */
    @Excel(name = "服务类别id")
    private Integer serviceTypeId;

    /** 下单时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "下单时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date orderTime;

    /** 预约时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "预约时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reservationTime;

    /** 订单车辆id */
    @Excel(name = "订单车辆id")
    private Integer carId;

    /** 平台优惠券id【每次只用使用一张】 */
    @Excel(name = "平台优惠券id【每次只用使用一张】")
    private Integer platformCouponId;

    /** 商家优惠券id【每次只用使用一张】 */
    @Excel(name = "商家优惠券id【每次只用使用一张】")
    private Integer shopCouponId;

    /** 实付金额 */
    @Excel(name = "实付金额")
    private BigDecimal price;

    /** 支付时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date payTime;

    /** 支付方式（0微信、1支付宝、2银行卡） */
    @Excel(name = "支付方式", readConverterExp = "0=微信、1支付宝、2银行卡")
    private Integer payType;

    /** 使用时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "使用时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date useTime;

    /** 订单状态（0待支付、1待使用、2待评价、3已取消、4已退款、5已完成） */
    @Excel(name = "订单状态", readConverterExp = "0=待支付、1待使用、2待评价、3已取消、4已退款、5已完成")
    private Integer status;

    /** 删除状态 */
    @Excel(name = "删除状态")
    private Integer deleted;

    public void setId(Integer id) 
    {
        this.id = id;
    }

    public Integer getId() 
    {
        return id;
    }

    public void setVerificationCode(String verificationCode) 
    {
        this.verificationCode = verificationCode;
    }

    public String getVerificationCode() 
    {
        return verificationCode;
    }

    public void setVerificationImg(String verificationImg) 
    {
        this.verificationImg = verificationImg;
    }

    public String getVerificationImg() 
    {
        return verificationImg;
    }

    public void setMid(Integer mid) 
    {
        this.mid = mid;
    }

    public Integer getMid() 
    {
        return mid;
    }

    public void setUid(Integer uid) 
    {
        this.uid = uid;
    }

    public Integer getUid() 
    {
        return uid;
    }

    public void setServiceId(Integer serviceId) 
    {
        this.serviceId = serviceId;
    }

    public Integer getServiceId() 
    {
        return serviceId;
    }

    public void setServiceTypeId(Integer serviceTypeId) 
    {
        this.serviceTypeId = serviceTypeId;
    }

    public Integer getServiceTypeId() 
    {
        return serviceTypeId;
    }

    public void setOrderTime(Date orderTime) 
    {
        this.orderTime = orderTime;
    }

    public Date getOrderTime() 
    {
        return orderTime;
    }

    public void setReservationTime(Date reservationTime) 
    {
        this.reservationTime = reservationTime;
    }

    public Date getReservationTime() 
    {
        return reservationTime;
    }

    public void setCarId(Integer carId) 
    {
        this.carId = carId;
    }

    public Integer getCarId() 
    {
        return carId;
    }

    public void setPlatformCouponId(Integer platformCouponId) 
    {
        this.platformCouponId = platformCouponId;
    }

    public Integer getPlatformCouponId() 
    {
        return platformCouponId;
    }

    public void setShopCouponId(Integer shopCouponId) 
    {
        this.shopCouponId = shopCouponId;
    }

    public Integer getShopCouponId() 
    {
        return shopCouponId;
    }

    public void setPrice(BigDecimal price) 
    {
        this.price = price;
    }

    public BigDecimal getPrice() 
    {
        return price;
    }

    public void setPayTime(Date payTime) 
    {
        this.payTime = payTime;
    }

    public Date getPayTime() 
    {
        return payTime;
    }

    public void setPayType(Integer payType) 
    {
        this.payType = payType;
    }

    public Integer getPayType() 
    {
        return payType;
    }

    public void setUseTime(Date useTime) 
    {
        this.useTime = useTime;
    }

    public Date getUseTime() 
    {
        return useTime;
    }

    public void setStatus(Integer status) 
    {
        this.status = status;
    }

    public Integer getStatus() 
    {
        return status;
    }

    public void setDeleted(Integer deleted) 
    {
        this.deleted = deleted;
    }

    public Integer getDeleted() 
    {
        return deleted;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("verificationCode", getVerificationCode())
            .append("verificationImg", getVerificationImg())
            .append("mid", getMid())
            .append("uid", getUid())
            .append("serviceId", getServiceId())
            .append("serviceTypeId", getServiceTypeId())
            .append("orderTime", getOrderTime())
            .append("reservationTime", getReservationTime())
            .append("carId", getCarId())
            .append("platformCouponId", getPlatformCouponId())
            .append("shopCouponId", getShopCouponId())
            .append("price", getPrice())
            .append("payTime", getPayTime())
            .append("payType", getPayType())
            .append("useTime", getUseTime())
            .append("status", getStatus())
            .append("deleted", getDeleted())
            .toString();
    }
}
